总体结构
Guardian 5.0的框架如下图所示,共分为四层。
底层:ApacheDS
Guardian 5.0提供了完整的安全解决方案,它通过三大模块实现用户认证、授权、配额管理以及资源控制,全方面保护TDH大数据平台安全:LDAP和KERBEROS协议实现用户认证,保证只有经过身份甄别的用户才能访问系统;授权模块保证只有被赋予权限的用户才可以访问系统资源;配额管理与资源负责控制用户可支配资源的大小。
Guardian 5.0对于总体框架、ARBAC模型、多粒度权限管理、资源控制和运维简化五个方面进行了增强。本文将介绍框架和ARBAC模型的改进,后面的新增特性会在下一篇文章介绍。
总体结构
Guardian 5.0的框架如下图所示,共分为四层。
底层:ApacheDS
Guardian 5.0底层使用改进的ApacheDS代替原来的OpenLDAP+Kerberos方案,使用同一套用户和统一的LDAP/Kerberos认证方式,避免OpenLDAP使用Kerberos认证,加速LDAP认证效率。
另外,Guardian 5.0对ApacheDS底层数据库进行了优化,使读写效率提升10倍以上。
同时还提供了Master-Slave的HA方案,保证用户数据安全和可靠性。
第二层:Guardian Server
架构第二层是独立的服务Guardian Server,实现完整的ARBAC模型支持,提供了REST API,以及用户友好的Web UI和密码策略等功能支持。同时采用JWT Token机制,为实现SSO做好基础准备。
Guardian Server将用户认证授权进行了统一化,从Web服务(如Workflow、Rubik)到Hadoop底层使用同一套用户,同一套授权机制;同时开放了LDAP接口、REST API和LoginService,供第三方应用使用Guardian用户进行认证和授权的整合。
此外,通过Guardian的跨域信任机制,Microsoft AD以及MIT Kerberos用户可以无缝访问TDH集群,并通过Guardian管理其权限。
第三层:Plugins
第三层使用插件的形式,为TDH各个组件提供认证、授权、组映射以及配额管理,使得TDH组件可以使用统一的用户、组和权限管理模型。
顶层:服务应用
架构顶层是与Guardian对接的各种TDH服务,受到Guardian的安全保护。
增强的ARBAC模型
在4.x版本中TDH集群各组件分别采用不同的权限模型,给权限管理带了不便。例如HDFS使用类似POSIX ACL的权限模型,通过HDFS shell授权;Inceptor使用基于角色的RBAC模型,使用SQL授权;而HBase使用的是基于组的RBAC权限模型,使用HBase shell授权。这意味着如果对这三个组件授权,必须登录三个系统,使用三种不同的模型授权,为权限运维造成不小的难度。为了简化运维,Guardian 5.0引入了增强后的ARBAC(Administrative Role Based Access Control)模型,统一了各个组件的权限管理,使用户使用统一的Web UI或者REST API进行授权,同时兼容了SQL、HBase shell授权方式。
如上图所示,增强的ARBAC模型分为两层。
第一层:结构组织管理
上层是人事管理与IT资源管理层,该层负责添加用户和系统资源,可以按照组织架构将用户划分为组,并根据公司架构将组组织成树型结构。同时,用户组可用于实现多租户管理,每个组是一个独立的资源和权限管理单元,也就是一个租户,组内设置一个组管理员,负责管理该组的权限,用户、子组以及所属的角色。
第二层:安全管理层
第二层是安全管理层,该层针对不同的资源抽象出不同的权限,每个权限表示对资源的一个操作,例如HDFS路径对应有读、写和执行权限,仅当用户拥有该路径的读权限时,才能成功读取该HDFS路径下的数据。权限可以被直接赋予用户和用户组,或者通过角色创建并管理权限的集合。当把角色赋予用户时,该用户即拥有角色的全部权限;角色 47 32180 47 15092 0 0 2188 0 0:00:14 0:00:06 0:00:08 2880予用户组时,隶属于该组的所有用户都拥有该角色的全部权限。Guardian 5.0通过采用此模型,提升了权限管理的灵活度,简化了琐细的权限管理。
ARBAC模型另外引入Administrative Permissions和Administrative Role,用于灵活控制登录Guardian的用户所能执行的操作,包括创建用户、创建组、创建角色或者管理权限和配额的权限等。如普通用户只能查看自己的权限信息,而用户管理员可以创建管理用户、组和角色,权限管理员则拥有管理权限和配置能力。
Guardian 5.0预设了10个系统管理权限,方便用户设置不同的Guardian用户角色。但事实上Guardian中的任何一个操作都对应了一个权限,如果有需求可以细化到对每一个动作进行权限管理。Administrative Permissions和Administrative Role的引入为管理员职责划分提供了基础。
总结与预告
往期原创文章
近实时的ETL工具--Transwarp Transporter
混合负载下的资源调度神器--Inceptor Scheduler
你应该知道的工作流调度平台——Transwarp Workflow
OLAP Cube可视化设计工具—Transwarp Rubik
TDH荣获TPC官方测试(TPCx-HS@10TB)最佳性能
星环的划时代版本-Transwarp Data Hub 5.0
大数据开放实验室由星环信息科技(上海)有限公司运营,专门致力于大数据技术的研究和传播。若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。